#include "BulletCollision/CollisionShapes/btMultiSphereShape.h"
#ifdef __cplusplus
extern "C" {
#endif
btPositionAndRadius* bullet_NewbtPositionAndRadius(){
	btPositionAndRadius* wrap_out = new btPositionAndRadius();
	return wrap_out;
}

btVector3FloatData* bullet_btPositionAndRadius_GetFieldOfM_pos(btPositionAndRadius* c_this){
	return (btVector3FloatData*)(&c_this->m_pos);
}

float bullet_btPositionAndRadius_GetFieldOfM_radius(btPositionAndRadius* c_this){
	return (float)(c_this->m_radius);
}

btMultiSphereShapeData* bullet_NewbtMultiSphereShapeData(){
	btMultiSphereShapeData* wrap_out = new btMultiSphereShapeData();
	return wrap_out;
}

btConvexInternalShapeData* bullet_btMultiSphereShapeData_GetFieldOfM_convexInternalShapeData(btMultiSphereShapeData* c_this){
	return (btConvexInternalShapeData*)(&c_this->m_convexInternalShapeData);
}

btPositionAndRadius** bullet_btMultiSphereShapeData_GetFieldOfM_localPositionArrayPtr(btMultiSphereShapeData* c_this){
	return (btPositionAndRadius**)(&c_this->m_localPositionArrayPtr);
}

int bullet_btMultiSphereShapeData_GetFieldOfM_localPositionArraySize(btMultiSphereShapeData* c_this){
	return (int)(c_this->m_localPositionArraySize);
}

char** bullet_btMultiSphereShapeData_GetFieldOfM_padding(btMultiSphereShapeData* c_this){
	return (char**)(&c_this->m_padding);
}

btMultiSphereShape* bullet_NewbtMultiSphereShape(btVector3* positions,double* radi,int numSpheres){
	btVector3 const * c_arg_positions=(btVector3 const *)(void*)(positions);
	btScalar const * c_arg_radi=(btScalar const *)(void*)(radi);
	int c_arg_numSpheres=numSpheres;
	btMultiSphereShape* wrap_out = new btMultiSphereShape(c_arg_positions,c_arg_radi,c_arg_numSpheres);
	return wrap_out;
}

int bullet_btMultiSphereShape_getSphereCount(btMultiSphereShape* c_this){
	int c_out = c_this->getSphereCount();
	int wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btMultiSphereShape_getSpherePosition(btMultiSphereShape* c_this,int index){
	int c_arg_index=index;
	btVector3 const& c_out = c_this->getSpherePosition(c_arg_index);
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

double bullet_btMultiSphereShape_getSphereRadius(btMultiSphereShape* c_this,int index){
	int c_arg_index=index;
	btScalar c_out = c_this->getSphereRadius(c_arg_index);
	double wrap_out = (c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
